import { IContext, IEntityLocalDataService, IParam } from '@/core';
import { IAuth } from '../interface/i-auth';
import keys from '../auth-keys';
import { Auth_infoDTOHelp } from '@/api/auth-info/dto-help/auth-info-helps';

/**
 * Auth_loginCommonDTODTO辅助类
 * 基于template/src/api/{{appEntities}}/data-service/{{appEntities}}-help.ts.hbs生成
 *
 * @export
 * @class Auth_loginCommonDTOHelp
 */
export class Auth_loginCommonDTOHelp {
	/**
	 * 获取实体数据服务
	 *
	 * @static
	 * @param {IParam} context
	 * @return {*}  {Promise<IEntityLocalDataService<IAuth>>}
	 * @memberof Auth_loginCommonDTOHelp
	 */
	public static async getService(
		context: IParam
	): Promise<IEntityLocalDataService<IAuth>> {
		return App.getDataService('Auth', context);
	}

	/**
	 * 获取是否缓存
	 *
	 * @memberof Auth_loginCommonDTOHelp
	 */
	public static getEnableCache() {
		return false;
	}

	/**
	 * DTO转化成数据对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} source dto对象
	 * @return {*}
	 * @memberof Auth_loginCommonDTOHelp
	 */
	public static async toDataObj(context: IContext, source: IParam) {
		const _data: any = {};
		//  登录名
		_data.login_name = source.loginname;
		//  密码
		_data.password = source.password;
		//  DC
		_data.dc = source.dc;
		//  验证码
		_data.code = source.code;
		//  验证码标识
		_data.state = source.state;
		//  手机号
		_data.phone = source.phone;
		//  标识
		_data.id = source.id;
		//  名称
		_data.display_name = source.display_name;
		//  登录类型
		_data.login_type = source.login_type;
		//  处理预置字段（以srf开头）
		if (source && Object.keys(source).length > 0) {
			Object.keys(source).forEach((key: string) => {
				if (key.startsWith('srf')) {
					_data[key] = source[key];
				}
			});
		}
		return _data;
	}

	/**
	 * 转化数据（DTO转化成数据对象）
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginCommonDTOHelp
	 */
	public static async toDataObjArray(context: IContext, data: any[]) {
		const _data: any[] = [];
		if (data && Array.isArray(data) && data.length > 0) {
			for (let i = 0; i < data.length; i++) {
				const tempdata = await this.toDataObj(context, data[i]);
				_data.push(tempdata);
			}
		}
		return _data;
	}

	/**
	 * 数据对象转化成DTO
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} source 数据对象
	 * @return {*}
	 * @memberof Auth_loginCommonDTOHelp
	 */
	public static async toDto(context: IContext, source: IParam) {
		const _data: any = {};
		const excludes: string[] = [];
		//  登录名
		if (source.hasOwnProperty('login_name')) {
			_data.loginname = source.login_name;
		}
		//  密码
		if (source.hasOwnProperty('password')) {
			_data.password = source.password;
		}
		//  DC
		if (source.hasOwnProperty('dc')) {
			_data.dc = source.dc;
		}
		//  验证码
		if (source.hasOwnProperty('code')) {
			_data.code = source.code;
		}
		//  验证码标识
		if (source.hasOwnProperty('state')) {
			_data.state = source.state;
		}
		//  手机号
		if (source.hasOwnProperty('phone')) {
			_data.phone = source.phone;
		}
		//  标识
		if (source.hasOwnProperty('id')) {
			_data.id = source.id;
		}
		//  名称
		if (source.hasOwnProperty('display_name')) {
			_data.display_name = source.display_name;
		}
		//  登录类型
		if (source.hasOwnProperty('login_type')) {
			_data.login_type = source.login_type;
		}
		// 附加额外数据
		if (source && Object.keys(source).length > 0 && keys) {
			Object.keys(source).forEach((key: string) => {
				if (!keys.includes(key) && !excludes.includes(key)) {
					_data[key] = source[key];
				}
			});
		}
		return _data;
	}

	/**
	 * 转化数组(数据对象转化成DTO数组)
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam[]} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginCommonDTOHelp
	 */
	public static async toDtoArray(context: IContext, data: IParam[]) {
		const _data: any[] = [];
		if (data && Array.isArray(data) && data.length > 0) {
			for (let i = 0; i < data.length; i++) {
				const tempdata = await this.toDto(context, data[i]);
				_data.push(tempdata);
			}
		}
		return _data;
	}

	/**
	 * 处理响应DTO对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginCommonDTOHelp
	 */
	public static async set(context: IContext, data: IParam) {
		const _data: IParam = await this.toDataObj(context, data);
		return _data;
	}

	/**
	 * 处理请求数据对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginCommonDTOHelp
	 */
	public static async get(context: IContext, data: IParam = {}) {
		return await this.toDto(context, data);
	}

	/**
	 * 获取缓存数据
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {string} srfkey 数据主键
	 * @return {*}
	 * @memberof Auth_loginCommonDTOHelp
	 */
	public static async getCacheData(context: IContext, srfkey: string) {
		return {};
	}

	/**
	 * 获取缓存数组
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @return {*}
	 * @memberof Auth_loginCommonDTOHelp
	 */
	public static async getCacheDataArray(context: IContext) {
		return [];
	}

	/**
	 * 设置缓存数据
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据
	 * @return {*}
	 * @memberof Auth_loginCommonDTOHelp
	 */
	public static async setCacheData(context: IContext, data: IParam) {}

	/**
	 * 设置缓存数组
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {any[]} data 数据
	 * @return {*}
	 * @memberof Auth_loginCommonDTOHelp
	 */
	public static async setCacheDataArray(context: IContext, data: any[]) {}
}
/**
 * Auth_loginDTODTO辅助类
 * 基于template/src/api/{{appEntities}}/data-service/{{appEntities}}-help.ts.hbs生成
 *
 * @export
 * @class Auth_loginDTOHelp
 */
export class Auth_loginDTOHelp {
	/**
	 * 获取实体数据服务
	 *
	 * @static
	 * @param {IParam} context
	 * @return {*}  {Promise<IEntityLocalDataService<IAuth>>}
	 * @memberof Auth_loginDTOHelp
	 */
	public static async getService(
		context: IParam
	): Promise<IEntityLocalDataService<IAuth>> {
		return App.getDataService('Auth', context);
	}

	/**
	 * 获取是否缓存
	 *
	 * @memberof Auth_loginDTOHelp
	 */
	public static getEnableCache() {
		return false;
	}

	/**
	 * DTO转化成数据对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} source dto对象
	 * @return {*}
	 * @memberof Auth_loginDTOHelp
	 */
	public static async toDataObj(context: IContext, source: IParam) {
		const _data: any = {};
		//  标识
		_data.id = source.id;
		//  登录名
		_data.login_name = source.login_name;
		//  密码
		_data.password = source.password;
		//  DC
		_data.dc = source.dc;
		//  token类型
		_data.token_type = source.token_type;
		//  access_token
		_data.access_token = source.access_token;
		//  token
		_data.token = source.token;
		//  用户信息
		_data.user = source.user;
		//  user
		if (Auth_infoDTOHelp.getEnableCache()) {
			if (source && source.user) {
				await Auth_infoDTOHelp.setCacheData(context, source.user);
			}
			_data.user = source.user;
		} else {
			_data.user = source.user;
		}
		//  范围
		_data.scope = source.scope;
		//  token_id
		_data.token_id = source.token_id;
		//  过期时间
		_data.expiration = source.expiration;
		//  过期剩余秒数
		_data.expires_in = source.expires_in;
		//  refresh_token
		_data.refresh_token = source.refresh_token;
		//  验证码标识
		_data.state = source.state;
		//  验证码
		_data.code = source.code;
		//  变更的新密码
		_data.new_password = source.new_password;
		//  手机号
		_data.phone = source.phone;
		//  验证码图片
		_data.image = source.image;
		//  登录类型
		_data.login_type = source.login_type;
		//  名称
		_data.display_name = source.display_name;
		//  处理预置字段（以srf开头）
		if (source && Object.keys(source).length > 0) {
			Object.keys(source).forEach((key: string) => {
				if (key.startsWith('srf')) {
					_data[key] = source[key];
				}
			});
		}
		return _data;
	}

	/**
	 * 转化数据（DTO转化成数据对象）
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginDTOHelp
	 */
	public static async toDataObjArray(context: IContext, data: any[]) {
		const _data: any[] = [];
		if (data && Array.isArray(data) && data.length > 0) {
			for (let i = 0; i < data.length; i++) {
				const tempdata = await this.toDataObj(context, data[i]);
				_data.push(tempdata);
			}
		}
		return _data;
	}

	/**
	 * 数据对象转化成DTO
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} source 数据对象
	 * @return {*}
	 * @memberof Auth_loginDTOHelp
	 */
	public static async toDto(context: IContext, source: IParam) {
		const _data: any = {};
		const excludes: string[] = ['user'];
		//  标识
		if (source.hasOwnProperty('id')) {
			_data.id = source.id;
		}
		//  登录名
		if (source.hasOwnProperty('login_name')) {
			_data.login_name = source.login_name;
		}
		//  密码
		if (source.hasOwnProperty('password')) {
			_data.password = source.password;
		}
		//  DC
		if (source.hasOwnProperty('dc')) {
			_data.dc = source.dc;
		}
		//  token类型
		if (source.hasOwnProperty('token_type')) {
			_data.token_type = source.token_type;
		}
		//  access_token
		if (source.hasOwnProperty('access_token')) {
			_data.access_token = source.access_token;
		}
		//  token
		if (source.hasOwnProperty('token')) {
			_data.token = source.token;
		}
		//  用户信息
		if (source.hasOwnProperty('user')) {
			_data.user = source.user;
		}
		//  user
		if (source.hasOwnProperty('user')) {
			_data.user = source.user;
		} else if (Auth_infoDTOHelp.getEnableCache()) {
			_data.user = await Auth_infoDTOHelp.getCacheData(context, source.user);
		}
		//  范围
		if (source.hasOwnProperty('scope')) {
			_data.scope = source.scope;
		}
		//  token_id
		if (source.hasOwnProperty('token_id')) {
			_data.token_id = source.token_id;
		}
		//  过期时间
		if (source.hasOwnProperty('expiration')) {
			_data.expiration = source.expiration;
		}
		//  过期剩余秒数
		if (source.hasOwnProperty('expires_in')) {
			_data.expires_in = source.expires_in;
		}
		//  refresh_token
		if (source.hasOwnProperty('refresh_token')) {
			_data.refresh_token = source.refresh_token;
		}
		//  验证码标识
		if (source.hasOwnProperty('state')) {
			_data.state = source.state;
		}
		//  验证码
		if (source.hasOwnProperty('code')) {
			_data.code = source.code;
		}
		//  变更的新密码
		if (source.hasOwnProperty('new_password')) {
			_data.new_password = source.new_password;
		}
		//  手机号
		if (source.hasOwnProperty('phone')) {
			_data.phone = source.phone;
		}
		//  验证码图片
		if (source.hasOwnProperty('image')) {
			_data.image = source.image;
		}
		//  登录类型
		if (source.hasOwnProperty('login_type')) {
			_data.login_type = source.login_type;
		}
		//  名称
		if (source.hasOwnProperty('display_name')) {
			_data.display_name = source.display_name;
		}
		// 附加额外数据
		if (source && Object.keys(source).length > 0 && keys) {
			Object.keys(source).forEach((key: string) => {
				if (!keys.includes(key) && !excludes.includes(key)) {
					_data[key] = source[key];
				}
			});
		}
		return _data;
	}

	/**
	 * 转化数组(数据对象转化成DTO数组)
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam[]} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginDTOHelp
	 */
	public static async toDtoArray(context: IContext, data: IParam[]) {
		const _data: any[] = [];
		if (data && Array.isArray(data) && data.length > 0) {
			for (let i = 0; i < data.length; i++) {
				const tempdata = await this.toDto(context, data[i]);
				_data.push(tempdata);
			}
		}
		return _data;
	}

	/**
	 * 处理响应DTO对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginDTOHelp
	 */
	public static async set(context: IContext, data: IParam) {
		const _data: IParam = await this.toDataObj(context, data);
		return _data;
	}

	/**
	 * 处理请求数据对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginDTOHelp
	 */
	public static async get(context: IContext, data: IParam = {}) {
		return await this.toDto(context, data);
	}

	/**
	 * 获取缓存数据
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {string} srfkey 数据主键
	 * @return {*}
	 * @memberof Auth_loginDTOHelp
	 */
	public static async getCacheData(context: IContext, srfkey: string) {
		return {};
	}

	/**
	 * 获取缓存数组
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @return {*}
	 * @memberof Auth_loginDTOHelp
	 */
	public static async getCacheDataArray(context: IContext) {
		return [];
	}

	/**
	 * 设置缓存数据
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据
	 * @return {*}
	 * @memberof Auth_loginDTOHelp
	 */
	public static async setCacheData(context: IContext, data: IParam) {}

	/**
	 * 设置缓存数组
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {any[]} data 数据
	 * @return {*}
	 * @memberof Auth_loginDTOHelp
	 */
	public static async setCacheDataArray(context: IContext, data: any[]) {}
}
/**
 * Auth_loginRequestDTODTO辅助类
 * 基于template/src/api/{{appEntities}}/data-service/{{appEntities}}-help.ts.hbs生成
 *
 * @export
 * @class Auth_loginRequestDTOHelp
 */
export class Auth_loginRequestDTOHelp {
	/**
	 * 获取实体数据服务
	 *
	 * @static
	 * @param {IParam} context
	 * @return {*}  {Promise<IEntityLocalDataService<IAuth>>}
	 * @memberof Auth_loginRequestDTOHelp
	 */
	public static async getService(
		context: IParam
	): Promise<IEntityLocalDataService<IAuth>> {
		return App.getDataService('Auth', context);
	}

	/**
	 * 获取是否缓存
	 *
	 * @memberof Auth_loginRequestDTOHelp
	 */
	public static getEnableCache() {
		return false;
	}

	/**
	 * DTO转化成数据对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} source dto对象
	 * @return {*}
	 * @memberof Auth_loginRequestDTOHelp
	 */
	public static async toDataObj(context: IContext, source: IParam) {
		const _data: any = {};
		//  登录名
		_data.login_name = source.loginname;
		//  密码
		_data.password = source.password;
		//  DC
		_data.dc = source.dc;
		//  验证码
		_data.code = source.code;
		//  验证码标识
		_data.state = source.state;
		//  登录类型
		_data.login_type = source.logintype;
		//  处理预置字段（以srf开头）
		if (source && Object.keys(source).length > 0) {
			Object.keys(source).forEach((key: string) => {
				if (key.startsWith('srf')) {
					_data[key] = source[key];
				}
			});
		}
		return _data;
	}

	/**
	 * 转化数据（DTO转化成数据对象）
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginRequestDTOHelp
	 */
	public static async toDataObjArray(context: IContext, data: any[]) {
		const _data: any[] = [];
		if (data && Array.isArray(data) && data.length > 0) {
			for (let i = 0; i < data.length; i++) {
				const tempdata = await this.toDataObj(context, data[i]);
				_data.push(tempdata);
			}
		}
		return _data;
	}

	/**
	 * 数据对象转化成DTO
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} source 数据对象
	 * @return {*}
	 * @memberof Auth_loginRequestDTOHelp
	 */
	public static async toDto(context: IContext, source: IParam) {
		const _data: any = {};
		const excludes: string[] = [];
		//  登录名
		if (source.hasOwnProperty('login_name')) {
			_data.loginname = source.login_name;
		}
		//  密码
		if (source.hasOwnProperty('password')) {
			_data.password = source.password;
		}
		//  DC
		if (source.hasOwnProperty('dc')) {
			_data.dc = source.dc;
		}
		//  验证码
		if (source.hasOwnProperty('code')) {
			_data.code = source.code;
		}
		//  验证码标识
		if (source.hasOwnProperty('state')) {
			_data.state = source.state;
		}
		//  登录类型
		if (source.hasOwnProperty('login_type')) {
			_data.logintype = source.login_type;
		}
		// 附加额外数据
		if (source && Object.keys(source).length > 0 && keys) {
			Object.keys(source).forEach((key: string) => {
				if (!keys.includes(key) && !excludes.includes(key)) {
					_data[key] = source[key];
				}
			});
		}
		return _data;
	}

	/**
	 * 转化数组(数据对象转化成DTO数组)
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam[]} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginRequestDTOHelp
	 */
	public static async toDtoArray(context: IContext, data: IParam[]) {
		const _data: any[] = [];
		if (data && Array.isArray(data) && data.length > 0) {
			for (let i = 0; i < data.length; i++) {
				const tempdata = await this.toDto(context, data[i]);
				_data.push(tempdata);
			}
		}
		return _data;
	}

	/**
	 * 处理响应DTO对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginRequestDTOHelp
	 */
	public static async set(context: IContext, data: IParam) {
		const _data: IParam = await this.toDataObj(context, data);
		return _data;
	}

	/**
	 * 处理请求数据对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginRequestDTOHelp
	 */
	public static async get(context: IContext, data: IParam = {}) {
		return await this.toDto(context, data);
	}

	/**
	 * 获取缓存数据
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {string} srfkey 数据主键
	 * @return {*}
	 * @memberof Auth_loginRequestDTOHelp
	 */
	public static async getCacheData(context: IContext, srfkey: string) {
		return {};
	}

	/**
	 * 获取缓存数组
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @return {*}
	 * @memberof Auth_loginRequestDTOHelp
	 */
	public static async getCacheDataArray(context: IContext) {
		return [];
	}

	/**
	 * 设置缓存数据
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据
	 * @return {*}
	 * @memberof Auth_loginRequestDTOHelp
	 */
	public static async setCacheData(context: IContext, data: IParam) {}

	/**
	 * 设置缓存数组
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {any[]} data 数据
	 * @return {*}
	 * @memberof Auth_loginRequestDTOHelp
	 */
	public static async setCacheDataArray(context: IContext, data: any[]) {}
}
/**
 * Auth_loginResponseDTODTO辅助类
 * 基于template/src/api/{{appEntities}}/data-service/{{appEntities}}-help.ts.hbs生成
 *
 * @export
 * @class Auth_loginResponseDTOHelp
 */
export class Auth_loginResponseDTOHelp {
	/**
	 * 获取实体数据服务
	 *
	 * @static
	 * @param {IParam} context
	 * @return {*}  {Promise<IEntityLocalDataService<IAuth>>}
	 * @memberof Auth_loginResponseDTOHelp
	 */
	public static async getService(
		context: IParam
	): Promise<IEntityLocalDataService<IAuth>> {
		return App.getDataService('Auth', context);
	}

	/**
	 * 获取是否缓存
	 *
	 * @memberof Auth_loginResponseDTOHelp
	 */
	public static getEnableCache() {
		return false;
	}

	/**
	 * DTO转化成数据对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} source dto对象
	 * @return {*}
	 * @memberof Auth_loginResponseDTOHelp
	 */
	public static async toDataObj(context: IContext, source: IParam) {
		const _data: any = {};
		//  token类型
		_data.token_type = source.token_type;
		//  access_token
		_data.access_token = source.access_token;
		//  token
		_data.token = source.token;
		//  用户信息
		_data.user = source.user;
		//  user
		if (Auth_infoDTOHelp.getEnableCache()) {
			if (source && source.user) {
				await Auth_infoDTOHelp.setCacheData(context, source.user);
			}
			_data.user = source.user;
		} else {
			_data.user = source.user;
		}
		//  范围
		_data.scope = source.scope;
		//  token_id
		_data.token_id = source.token_id;
		//  过期时间
		_data.expiration = source.expiration;
		//  过期剩余秒数
		_data.expires_in = source.expires_in;
		//  refresh_token
		_data.refresh_token = source.refresh_token;
		//  处理预置字段（以srf开头）
		if (source && Object.keys(source).length > 0) {
			Object.keys(source).forEach((key: string) => {
				if (key.startsWith('srf')) {
					_data[key] = source[key];
				}
			});
		}
		return _data;
	}

	/**
	 * 转化数据（DTO转化成数据对象）
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginResponseDTOHelp
	 */
	public static async toDataObjArray(context: IContext, data: any[]) {
		const _data: any[] = [];
		if (data && Array.isArray(data) && data.length > 0) {
			for (let i = 0; i < data.length; i++) {
				const tempdata = await this.toDataObj(context, data[i]);
				_data.push(tempdata);
			}
		}
		return _data;
	}

	/**
	 * 数据对象转化成DTO
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} source 数据对象
	 * @return {*}
	 * @memberof Auth_loginResponseDTOHelp
	 */
	public static async toDto(context: IContext, source: IParam) {
		const _data: any = {};
		const excludes: string[] = ['user'];
		//  token类型
		if (source.hasOwnProperty('token_type')) {
			_data.token_type = source.token_type;
		}
		//  access_token
		if (source.hasOwnProperty('access_token')) {
			_data.access_token = source.access_token;
		}
		//  token
		if (source.hasOwnProperty('token')) {
			_data.token = source.token;
		}
		//  用户信息
		if (source.hasOwnProperty('user')) {
			_data.user = source.user;
		}
		//  user
		if (source.hasOwnProperty('user')) {
			_data.user = source.user;
		} else if (Auth_infoDTOHelp.getEnableCache()) {
			_data.user = await Auth_infoDTOHelp.getCacheData(context, source.user);
		}
		//  范围
		if (source.hasOwnProperty('scope')) {
			_data.scope = source.scope;
		}
		//  token_id
		if (source.hasOwnProperty('token_id')) {
			_data.token_id = source.token_id;
		}
		//  过期时间
		if (source.hasOwnProperty('expiration')) {
			_data.expiration = source.expiration;
		}
		//  过期剩余秒数
		if (source.hasOwnProperty('expires_in')) {
			_data.expires_in = source.expires_in;
		}
		//  refresh_token
		if (source.hasOwnProperty('refresh_token')) {
			_data.refresh_token = source.refresh_token;
		}
		// 附加额外数据
		if (source && Object.keys(source).length > 0 && keys) {
			Object.keys(source).forEach((key: string) => {
				if (!keys.includes(key) && !excludes.includes(key)) {
					_data[key] = source[key];
				}
			});
		}
		return _data;
	}

	/**
	 * 转化数组(数据对象转化成DTO数组)
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam[]} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginResponseDTOHelp
	 */
	public static async toDtoArray(context: IContext, data: IParam[]) {
		const _data: any[] = [];
		if (data && Array.isArray(data) && data.length > 0) {
			for (let i = 0; i < data.length; i++) {
				const tempdata = await this.toDto(context, data[i]);
				_data.push(tempdata);
			}
		}
		return _data;
	}

	/**
	 * 处理响应DTO对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginResponseDTOHelp
	 */
	public static async set(context: IContext, data: IParam) {
		const _data: IParam = await this.toDataObj(context, data);
		return _data;
	}

	/**
	 * 处理请求数据对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginResponseDTOHelp
	 */
	public static async get(context: IContext, data: IParam = {}) {
		return await this.toDto(context, data);
	}

	/**
	 * 获取缓存数据
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {string} srfkey 数据主键
	 * @return {*}
	 * @memberof Auth_loginResponseDTOHelp
	 */
	public static async getCacheData(context: IContext, srfkey: string) {
		return {};
	}

	/**
	 * 获取缓存数组
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @return {*}
	 * @memberof Auth_loginResponseDTOHelp
	 */
	public static async getCacheDataArray(context: IContext) {
		return [];
	}

	/**
	 * 设置缓存数据
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据
	 * @return {*}
	 * @memberof Auth_loginResponseDTOHelp
	 */
	public static async setCacheData(context: IContext, data: IParam) {}

	/**
	 * 设置缓存数组
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {any[]} data 数据
	 * @return {*}
	 * @memberof Auth_loginResponseDTOHelp
	 */
	public static async setCacheDataArray(context: IContext, data: any[]) {}
}
/**
 * Auth_logincaptchaDTODTO辅助类
 * 基于template/src/api/{{appEntities}}/data-service/{{appEntities}}-help.ts.hbs生成
 *
 * @export
 * @class Auth_logincaptchaDTOHelp
 */
export class Auth_logincaptchaDTOHelp {
	/**
	 * 获取实体数据服务
	 *
	 * @static
	 * @param {IParam} context
	 * @return {*}  {Promise<IEntityLocalDataService<IAuth>>}
	 * @memberof Auth_logincaptchaDTOHelp
	 */
	public static async getService(
		context: IParam
	): Promise<IEntityLocalDataService<IAuth>> {
		return App.getDataService('Auth', context);
	}

	/**
	 * 获取是否缓存
	 *
	 * @memberof Auth_logincaptchaDTOHelp
	 */
	public static getEnableCache() {
		return false;
	}

	/**
	 * DTO转化成数据对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} source dto对象
	 * @return {*}
	 * @memberof Auth_logincaptchaDTOHelp
	 */
	public static async toDataObj(context: IContext, source: IParam) {
		const _data: any = {};
		//  验证码标识
		_data.state = source.state;
		//  验证码图片
		_data.image = source.image;
		//  处理预置字段（以srf开头）
		if (source && Object.keys(source).length > 0) {
			Object.keys(source).forEach((key: string) => {
				if (key.startsWith('srf')) {
					_data[key] = source[key];
				}
			});
		}
		return _data;
	}

	/**
	 * 转化数据（DTO转化成数据对象）
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_logincaptchaDTOHelp
	 */
	public static async toDataObjArray(context: IContext, data: any[]) {
		const _data: any[] = [];
		if (data && Array.isArray(data) && data.length > 0) {
			for (let i = 0; i < data.length; i++) {
				const tempdata = await this.toDataObj(context, data[i]);
				_data.push(tempdata);
			}
		}
		return _data;
	}

	/**
	 * 数据对象转化成DTO
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} source 数据对象
	 * @return {*}
	 * @memberof Auth_logincaptchaDTOHelp
	 */
	public static async toDto(context: IContext, source: IParam) {
		const _data: any = {};
		const excludes: string[] = [];
		//  验证码标识
		if (source.hasOwnProperty('state')) {
			_data.state = source.state;
		}
		//  验证码图片
		if (source.hasOwnProperty('image')) {
			_data.image = source.image;
		}
		// 附加额外数据
		if (source && Object.keys(source).length > 0 && keys) {
			Object.keys(source).forEach((key: string) => {
				if (!keys.includes(key) && !excludes.includes(key)) {
					_data[key] = source[key];
				}
			});
		}
		return _data;
	}

	/**
	 * 转化数组(数据对象转化成DTO数组)
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam[]} data 数据对象
	 * @return {*}
	 * @memberof Auth_logincaptchaDTOHelp
	 */
	public static async toDtoArray(context: IContext, data: IParam[]) {
		const _data: any[] = [];
		if (data && Array.isArray(data) && data.length > 0) {
			for (let i = 0; i < data.length; i++) {
				const tempdata = await this.toDto(context, data[i]);
				_data.push(tempdata);
			}
		}
		return _data;
	}

	/**
	 * 处理响应DTO对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_logincaptchaDTOHelp
	 */
	public static async set(context: IContext, data: IParam) {
		const _data: IParam = await this.toDataObj(context, data);
		return _data;
	}

	/**
	 * 处理请求数据对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_logincaptchaDTOHelp
	 */
	public static async get(context: IContext, data: IParam = {}) {
		return await this.toDto(context, data);
	}

	/**
	 * 获取缓存数据
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {string} srfkey 数据主键
	 * @return {*}
	 * @memberof Auth_logincaptchaDTOHelp
	 */
	public static async getCacheData(context: IContext, srfkey: string) {
		return {};
	}

	/**
	 * 获取缓存数组
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @return {*}
	 * @memberof Auth_logincaptchaDTOHelp
	 */
	public static async getCacheDataArray(context: IContext) {
		return [];
	}

	/**
	 * 设置缓存数据
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据
	 * @return {*}
	 * @memberof Auth_logincaptchaDTOHelp
	 */
	public static async setCacheData(context: IContext, data: IParam) {}

	/**
	 * 设置缓存数组
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {any[]} data 数据
	 * @return {*}
	 * @memberof Auth_logincaptchaDTOHelp
	 */
	public static async setCacheDataArray(context: IContext, data: any[]) {}
}
/**
 * Auth_loginchangePwdDTODTO辅助类
 * 基于template/src/api/{{appEntities}}/data-service/{{appEntities}}-help.ts.hbs生成
 *
 * @export
 * @class Auth_loginchangePwdDTOHelp
 */
export class Auth_loginchangePwdDTOHelp {
	/**
	 * 获取实体数据服务
	 *
	 * @static
	 * @param {IParam} context
	 * @return {*}  {Promise<IEntityLocalDataService<IAuth>>}
	 * @memberof Auth_loginchangePwdDTOHelp
	 */
	public static async getService(
		context: IParam
	): Promise<IEntityLocalDataService<IAuth>> {
		return App.getDataService('Auth', context);
	}

	/**
	 * 获取是否缓存
	 *
	 * @memberof Auth_loginchangePwdDTOHelp
	 */
	public static getEnableCache() {
		return false;
	}

	/**
	 * DTO转化成数据对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} source dto对象
	 * @return {*}
	 * @memberof Auth_loginchangePwdDTOHelp
	 */
	public static async toDataObj(context: IContext, source: IParam) {
		const _data: any = {};
		//  密码
		_data.password = source.password;
		//  变更的新密码
		_data.new_password = source.new_password;
		//  手机号
		_data.phone = source.phone;
		//  验证码
		_data.code = source.code;
		//  验证码标识
		_data.state = source.state;
		//  处理预置字段（以srf开头）
		if (source && Object.keys(source).length > 0) {
			Object.keys(source).forEach((key: string) => {
				if (key.startsWith('srf')) {
					_data[key] = source[key];
				}
			});
		}
		return _data;
	}

	/**
	 * 转化数据（DTO转化成数据对象）
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginchangePwdDTOHelp
	 */
	public static async toDataObjArray(context: IContext, data: any[]) {
		const _data: any[] = [];
		if (data && Array.isArray(data) && data.length > 0) {
			for (let i = 0; i < data.length; i++) {
				const tempdata = await this.toDataObj(context, data[i]);
				_data.push(tempdata);
			}
		}
		return _data;
	}

	/**
	 * 数据对象转化成DTO
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} source 数据对象
	 * @return {*}
	 * @memberof Auth_loginchangePwdDTOHelp
	 */
	public static async toDto(context: IContext, source: IParam) {
		const _data: any = {};
		const excludes: string[] = [];
		//  密码
		if (source.hasOwnProperty('password')) {
			_data.password = source.password;
		}
		//  变更的新密码
		if (source.hasOwnProperty('new_password')) {
			_data.new_password = source.new_password;
		}
		//  手机号
		if (source.hasOwnProperty('phone')) {
			_data.phone = source.phone;
		}
		//  验证码
		if (source.hasOwnProperty('code')) {
			_data.code = source.code;
		}
		//  验证码标识
		if (source.hasOwnProperty('state')) {
			_data.state = source.state;
		}
		// 附加额外数据
		if (source && Object.keys(source).length > 0 && keys) {
			Object.keys(source).forEach((key: string) => {
				if (!keys.includes(key) && !excludes.includes(key)) {
					_data[key] = source[key];
				}
			});
		}
		return _data;
	}

	/**
	 * 转化数组(数据对象转化成DTO数组)
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam[]} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginchangePwdDTOHelp
	 */
	public static async toDtoArray(context: IContext, data: IParam[]) {
		const _data: any[] = [];
		if (data && Array.isArray(data) && data.length > 0) {
			for (let i = 0; i < data.length; i++) {
				const tempdata = await this.toDto(context, data[i]);
				_data.push(tempdata);
			}
		}
		return _data;
	}

	/**
	 * 处理响应DTO对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginchangePwdDTOHelp
	 */
	public static async set(context: IContext, data: IParam) {
		const _data: IParam = await this.toDataObj(context, data);
		return _data;
	}

	/**
	 * 处理请求数据对象
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据对象
	 * @return {*}
	 * @memberof Auth_loginchangePwdDTOHelp
	 */
	public static async get(context: IContext, data: IParam = {}) {
		return await this.toDto(context, data);
	}

	/**
	 * 获取缓存数据
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {string} srfkey 数据主键
	 * @return {*}
	 * @memberof Auth_loginchangePwdDTOHelp
	 */
	public static async getCacheData(context: IContext, srfkey: string) {
		return {};
	}

	/**
	 * 获取缓存数组
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @return {*}
	 * @memberof Auth_loginchangePwdDTOHelp
	 */
	public static async getCacheDataArray(context: IContext) {
		return [];
	}

	/**
	 * 设置缓存数据
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {IParam} data 数据
	 * @return {*}
	 * @memberof Auth_loginchangePwdDTOHelp
	 */
	public static async setCacheData(context: IContext, data: IParam) {}

	/**
	 * 设置缓存数组
	 *
	 * @static
	 * @param {IContext} context 应用上下文
	 * @param {any[]} data 数据
	 * @return {*}
	 * @memberof Auth_loginchangePwdDTOHelp
	 */
	public static async setCacheDataArray(context: IContext, data: any[]) {}
}
